package data;

import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;

import domain.CategoriaRepository;
import util.CategoriaDTO;
import util.CategoriaAssembler;
import domain.Categoria;

public class CategoriaRepositoryDAOImpl implements CategoriaRepository {
 
 private CategoriaDAO profDAO;
 
 CategoriaRepositoryDAOImpl(CategoriaDAO profDAO) {
   this.profDAO = profDAO;
 }
 
 public boolean insertCategoria(Categoria prof) {
	CategoriaDTO profDTO = CategoriaAssembler.CreateDTO(prof);
	return (profDAO.insert(profDTO));
 }
 
 public boolean deleteCategoria(Categoria prof) {
   CategoriaDTO profDTO = CategoriaAssembler.CreateDTO(prof);
   return (profDAO.delete(profDTO));
 }
 
 public Categoria findCategoria(int id) {
   CategoriaDTO profDTO = profDAO.findById(id);
   if (profDTO!=null) {
     Categoria prof = new Categoria();
     System.out.println(profDTO.getNombre());
     CategoriaAssembler.Update(prof,profDTO);
     return prof;
   }
   return null;
 }
 
 public boolean updateCategoria(Categoria prof) {
   CategoriaDTO profDTO = CategoriaAssembler.CreateDTO(prof);
   return (profDAO.update(profDTO));
 }
 
 public Collection findAllCategoria() {
   Collection profsDTO = profDAO.findAll();
   List profList = new ArrayList();
   Iterator itr = profsDTO.iterator();
   while (itr.hasNext()) {
     Categoria prof = new Categoria();
     CategoriaDTO profDTO = (CategoriaDTO)itr.next();
     CategoriaAssembler.Update(prof,profDTO);
     profList.add(prof);
   }
   return profList;
 }
}